#ifndef _SHRINE_h
#define _SHRINE_H

///////////////////////////////////////////////////////////////////////////
//																		 //
//	Author:		Michael Mozdzierz										 //
//	Date:		11/01/2014												 //
//	Purpose:	Define the Shrine builing type							 //
//																		 //
///////////////////////////////////////////////////////////////////////////

#include "Structure.h"
#include "../../../EdgeMath/Vectors.h"
#include "../../../EdgeMath/Math.h"

// The shrine building type that the player can use to build a temple
class Shrine : public Structure
{
protected:

	float scale = 1.f;

	// get the matrix that should be sent to the graphics device
	// to transform this object when rendering
	virtual Matrix getWorldTransform(void) override { return  VectorHelper::Matricies::CreateScale(scale) * Matricies::CreateRotationX(Math::to_radians(90.f)) * VectorHelper::Matricies::CreateTranslation(position); }

public:
	// create a new shrine
	Shrine(void);
	virtual ~Shrine(void);

	virtual void Update(float dt) override;

	// a callback for when this object has been interacted with
	virtual void Interact(void) override;

	virtual ObjectID getID(void) const override { return ObjectID::STRUCTURE_SHRINE; }
};

#endif